﻿using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Routing;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Common.WebApiRoute
{
    /*使用方式如下：
        #region 配置全局路由
        //在各个控制器添加前缀（没有特定的路由前面添加前缀）
        services.AddMvc(opt =>
            {
                opt.UseCentralRoutePrefix(new RouteAttribute("lg/v1/[action]"));
                //opt.UseCentralRoutePrefix(new RouteAttribute("api/[controller]/[action]"));
            });
        #endregion
     */
    /// <summary>
    /// 路由扩展
    /// </summary>
    public static class MvcOptionsExtensions
    {
        /// <summary>
        /// 扩展方法
        /// </summary>
        /// <param name="opts"></param>
        /// <param name="routeAttribute"></param>
        public static void UseCentralRoutePrefix(this MvcOptions opts, IRouteTemplateProvider routeAttribute)
        {
            // 添加我们自定义 实现IApplicationModelConvention的RouteConvention
            opts.Conventions.Insert(0, new RouteConvention(routeAttribute));
        }


    }
}
